using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Personalplaner
{
    [ToolboxItem(false)]
	public partial class FeiertageEditDlg : UserControl, Gencode.Gengui.Forms.ISaveNewDialog
	{
		Feiertage frt;

		public FeiertageEditDlg()
		{
			InitializeComponent();

			SetData();
		}

		private void SetData()
		{
			SetComboYear();
		}

		private void SetComboYear()
		{
			int yearNow = DateTime.Today.Year;

			if (comboYear.Items.Count > 0)
				comboYear.Items.Clear();

			for (int y = (yearNow - 5); y < (yearNow + 8); y++)
			{
				comboYear.Items.Add(y.ToString());
			}
			comboYear.SelectedIndex = 5;
		}

		private void SetComboFeiertage()
		{
			if (comboFeiertag.Items.Count > 0)
				comboFeiertag.Items.Clear();

			frt = new Feiertage(int.Parse(comboYear.Text));

			for (int i = 0; i < frt.FeiertagList.Count; i++)
			{
				comboFeiertag.Items.Add(frt.FeiertagList[i].Name);
			}
		}

		private void comboYear_SelectedIndexChanged(object sender, EventArgs e)
		{
			comboFeiertag.SelectedIndex = -1;
			SetComboFeiertage();

			txtName.Text = "";
			txtBezahlteTage.Text = "0";
			dateVon.Value = DateTime.Today;
		}

		private void comboFeiertag_SelectedIndexChanged(object sender, EventArgs e)
		{
			if (comboFeiertag.SelectedIndex >= 0)
			{
				txtName.Text = frt.FeiertagList[comboFeiertag.SelectedIndex].Name;
				txtBezahlteTage.Text = frt.FeiertagList[comboFeiertag.SelectedIndex].BezahlteTage.ToString();
				dateVon.Text = frt.FeiertagList[comboFeiertag.SelectedIndex].Von;
			}
		}

		#region ISaveNewDialog Members

		public void NewClicked()
		{
			comboYear.SelectedIndex = 5;
			comboFeiertag.SelectedIndex = -1;
			txtBezahlteTage.Text = "0";
			txtName.Text = "";
			dateVon.Value = DateTime.Today;
		}

		#endregion

		#region ISaveDialog Members

		public void SaveClicked()
		{
			FeiertageDB saver = new FeiertageDB();
			if (txtName.Text == "") { MessageBox.Show("Bitte geben Sie einen Namen ein"); return; }
			if (txtBezahlteTage.Text == "") { MessageBox.Show("Bitte geben Sie einene anzahl Tage ein"); return; }

			if (comboFeiertag.SelectedIndex >= 0)
			{
				saver.UpdateFeiertag(txtName.Text, dateVon.Text, txtBezahlteTage.Text,
					frt.FeiertagList[comboFeiertag.SelectedIndex].ATID);
			}
			else
			{
				saver.SaveFeiertag(dateVon.Value.Year.ToString(), txtName.Text, dateVon.Text, txtBezahlteTage.Text);
			}

			SetComboFeiertage();
			comboYear.SelectedIndex = 5;
			comboFeiertag.SelectedIndex = -1;
			txtBezahlteTage.Text = "0";
			txtName.Text = "";
			dateVon.Value = DateTime.Today;
		}

		#endregion

		#region IDialogControl Members

		public bool OKClicked()
		{
			return true;
		}

		public bool CancleClicked()
		{
			return true;
		}

		#endregion
	}
}